Error correcting codes encode data redundantly to compensate for data errors in noisy communication channels. As data storage densities and transmission rates increase, the effects of error-causing disturbances may become more pronounced, leading to increased error rates. Low density parity check (LDPC) codes offer error correction performance close to a theoretical maximum.
Soft-decision LDPC code decoders achieve high error correction performance by operating on data that takes on a range of values between zero and one, unlike hard-decision LDPC code decoders, which operate on binary data. However, soft-decision decoders use more bandwidth to receive data values in a larger range, and have a higher computation cost than hard-decision decoders. Hard-decision decoders use less bandwidth and have a lower computational cost, but often have worse error correction performance than soft-decision decoders, especially with less computationally intensive types of LDPC codes. Many hard-decision decoders also have low throughput due to routing time involved in passing messages among decoder nodes.